#pragma execution_character_set("utf-8")
#include "MainWindow.h"
#include "MyLogger.h"
#include "MyModel.h"

/// <summary>
/// 向QT注册外部数据类型
/// </summary>
void registerMetaType() {
    qRegisterMetaType<cv::Mat>("cv::Mat");
    qRegisterMetaType<cv::Mat>("cv::Mat&");
    qRegisterMetaType<MyError>("MyError");
    qRegisterMetaType<MyError>("MyError&");
    qRegisterMetaType<vector<cv::Vec3f>>("vector<cv::Vec3f>&");
    qRegisterMetaType<pcl::PointCloud<pcl::PointXYZ>::Ptr>("pcl::PointCloud<pcl::PointXYZ>::Ptr&");
    qRegisterMetaType<staticalParameters>("staticalParameters");
}

int main(int argc, char *argv[]) {
#if _WIN32
    system("CHCP 65001");
#endif // MSVC
    QApplication app(argc, argv);
    // 使程序中的中文以UTF-8编码方式进行编码
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
    registerMetaType();
    MainWindow window;
 
    try {
        MyLogger::initLog("", "./logs");
        window.init();
    } catch (const MyError& e) {
        qCritical() << e.desc();
        if (MyMessageBox::error(nullptr, e.desc(), "继续", "退出") == 0) {
            return -1;
        };
    }
    window.show();
    return app.exec();
}




